perm filename ERROR.TRM[CLS,LSP] blob sn#855379 filedate 1988-03-29 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	common-lisp-object-system/su
C00004 00003	common-lisp-object-system/su
C00006 00004	``When situation $S$ occurs, the results are undefined.''
C00008 00005	``The effect is harmless.''
C00011 ENDMK
CāŠ—;
common-lisp-object-system/su
Proposed Wording Change to the Error Terminology

At the x3j13 meeting this week there was some negative comments
about the definition of ``undefined.'' The following is an attempt
to address those criticisms. The last bullet is the part in question:

****************************************************************************

``When situation $S$ occurs, the results are undefined.''

This terminology has the following meaning:

\beginlist

\item{\bull} If this situation occurs, the results are unpredictable.  The
results may range from harmless to fatal.

\item{\bull} No valid program should cause this situation to happen.

\item{\bull} Implementations are allowed to detect this situation and
signal an error, but no implementation is required to detect the
situation.

\item{\bull} No implementation is allowed to extend the semantics of the
\OS\ to this situation; the effects of the situation may be described
or specified by the implementors, but the effects may not be described
as an extension to the \OS\.

\endlist

****************************************************************************

			-rpg-
common-lisp-object-system/su
Proposed Wording Change to the Error Terminology (II)

When you read this, take out your chapter 1 and read the rest of the
section on error terminology. The suggestions about using the term
``portable'' as part of the definition of ``undefined'' seem to have been
made under the influence of amnesia regarding the rest of the section.

****************************************************************************

``When situation $S$ occurs, the results are undefined.''

This terminology has the following meaning:

\beginlist

\item{\bull} If this situation occurs, the results are unpredictable.  The
results may range from harmless to fatal.

\item{\bull} No valid program should cause this situation to happen.

\item{\bull} Implementations are allowed to detect this situation and
signal an error, but no implementation is required to detect the
situation.

\item{\bull} No implementation is allowed to extend the semantics of the
\OS\ to this situation.

\endlist

****************************************************************************

			-rpg-
``When situation $S$ occurs, the results are undefined.''

This terminology has the following meaning:

\beginlist

\item{\bull} If this situation occurs, the results are unpredictable.  The
results may range from harmless to fatal.

\item{\bull} Implementations are allowed to detect this situation and
signal an error, but no implementation is required to detect the
situation.

\item{\bull} No valid program may depend on the effects of this
situation, and all valid programs are required to treat the effects 
of this situation as unpredictable.

\endlist

``When situation $S$ occurs, the results are unspecified.''

This terminology has the following meaning:

\beginlist

\item{\bull} The effects of this situation are not specified in
the \OS, but the effects are harmless.

\item{\bull} Implementations are allowed to specify the effects of
this situation.

\item{\bull} No portable program can depend on the effects of this
situation, and all portable programs are required to treat the situation
as unpredictable but harmless.

\endlist
``The effect is harmless.''

This terminology has the following meaning:

\beginlist 

\item{\bull} The production of a value is harmless when no error is
signaled during its production.

\item{\bull} Any other effect is harmless if no Common Lisp program can be
written that detects whether the effect occurred.

\endlist

``When situation $S$ occurs, the results are undefined.''

This terminology has the following meaning:

\beginlist

\item{\bull} If this situation occurs, the results are unpredictable.  The
results may range from harmless to fatal.

\item{\bull} Implementations are allowed to detect this situation and
signal an error, but no implementation is required to detect the
situation.

\item{\bull} No valid program may depend on the effects of this
situation, and all valid programs are required to treat the effects 
of this situation as unpredictable.

\endlist

``When situation $S$ occurs, the results are unspecified.''

This terminology has the following meaning:

\beginlist

\item{\bull} The effects of this situation are not specified in
the \OS, but harmless. 

\item{\bull} Implementations are allowed to specify the effects of
this situation.

\item{\bull} No portable program can depend on the effects of this
situation, and all portable programs are required to treat the situation
as unpredictable but harmless.

\endlist